﻿/*THÔNG TIN*********************************************************************
 *Tập tin		: main.cpp
 *Mô tả			: Chương trình minh họa các thuật toán với đồ thị
 *Ngày tạo		: 29/08/2012
 *Cập nhật cuối	: 07/11/2012
 *Trình dịch	: Microsoft Visual C++ 11.0
 *Tác giả		: Vũ Văn Hiệp
 *Thư điện tử	: muteszhacker@gmail.com
*******************************************************************************/

#include "GLib.h"

/*Chương trình chính*/
int main()	{
	string input_file;
	cout << "Nhap ten file: ";
	cin >> input_file;

/*	GRAPH g;

	if (g.Read_graph(input_file, false, true))	{
		g.Print_graph_to_dot(input_file);
		g.Dot_to_bmp(input_file, "");
	}
*/

/*	TRAVERSE t;

	if (t.Read_graph(input_file, false, true))	{
		t.Initiate_traverse();
		t.BFS(0);
		t.Print_runtime();
			
		t.Print_result_to_out(input_file, "_BFS");
		t.Print_result_to_dot(input_file, "_BFS");
		t.Dot_to_bmp(input_file, "_BFS");
	}
*/

/*	TRAVERSE t;

	if (t.Read_graph(input_file, false, true))	{
		t.Initiate_traverse();
		t.DFS(0);
		t.Print_runtime();
			
		t.Print_result_to_out(input_file, "_DFS");
		t.Print_result_to_dot(input_file, "_DFS");
		t.Dot_to_bmp(input_file, "_DFS");
	}
*/

/*	DAG d;

	if (d.Read_graph(input_file, false, true))	{
		d.Initiate_Topo();
		d.Topological_order();

		d.Print_result_to_out(input_file);
		d.Print_result_to_dot(input_file);
		d.Dot_to_bmp(input_file, "_Topo");
	}
*/

/*	PATH p;

	if (p.Read_graph(input_file, false, true))	{
		p.Initiate_Dijkstra();
		p.Dijkstra();

		p.Build_result();

		p.Print_result_to_out(input_file);
		p.Print_result_to_dot(input_file);
		p.Dot_to_bmp(input_file, "_Dijkstra");
	}
*/

/*	SPANTREE s;

	if (s.Read_graph(input_file, false, true))	{
		s.Initiate_Prim();
		s.Prim();

		s.Print_result_to_out(input_file);
		s.Print_result_to_dot(input_file);
		s.Dot_to_bmp(input_file, "_Prim");
	}
*/

/*	COVER c;

	if (c.Read_graph(input_file, false, true))	{
		c.Initiate_Cover();
		c.Find_vertex_cover();

		c.Print_result_to_out(input_file);
		c.Print_result_to_dot(input_file);
		c.Dot_to_bmp(input_file, "_Cover");
	}
*/

/*	INDEP i;

	if (i.Read_graph(input_file, false, true))	{
		i.Initiate_indep_set();
		i.Find_max_size_indep_set();

		i.Print_max_size_indep_set_to_out(input_file);
		i.Print_max_size_indep_set_to_dot(input_file);
		i.Dot_to_bmp(input_file, "_Indep");
	}
*/
	INDEP i;

	if (i.Read_graph(input_file, false, true))	{
		i.Initiate_indep_set();
		i.Find_max_weight_indep_set();

		i.Build_result();
		i.Print_max_weight_indep_set_to_out(input_file);
		i.Print_max_weight_indep_set_to_dot(input_file);
		i.Dot_to_bmp(input_file, "_Max_indep");
	}

	cin.ignore();
	return 0;
}/*Kết thúc hàm main*/

/*Kết thúc chương trình*/